<?php

require_once _DIRETORIO_BACKEND_DB_._SEPARADOR_DIRETORIO_.'DBendereco.php';
//require_once _DIRETORIO_INC_._SEPARADOR_DIRETORIO_.'header.php';
/**
 * @name BRendereco
 * @version 0.1
 * @access public
 * @package backend
 * @subpackage db
 */ 
Class BRendereco extends DBendereco{	
	
	public function __construct(){
	}
	
	public function recordCount($oVO){
            $DB = new DB();
            $dbh = $DB->conec();
			
            if(!isset($first)){$first = true;}

            try{
                $sql = "SELECT COUNT(*) FROM ENDERECO";

                if(!empty($oVO->nome)){
                       $sql.=$this->getSQLFirst($first)."nome =:nome" ;
                }
                if(!empty($oVO->cep)){
                       $sql.=$this->getSQLFirst($first)."cep =:cep" ;
                }
                if(!empty($oVO->rua)){
                       $sql.=$this->getSQLFirst($first)."rua =:rua" ;
                }

                $sql.=" order by nome";

                $stmt = $dbh->prepare($sql);
                if(!empty($oVO->nome)){
                       $nome = "%".$oVO->nome."%";
                       $stmt->bindParam(':nome',$nome,PDO::PARAM_STR);
                }
               if(!empty($oVO->cep)){
                       $cep = "%".$oVO->cep."%";
                       $stmt->bindParam(':cep',$cep,PDO::PARAM_STR);
                }
               if(!empty($oVO->rua)){
                       $cep = "%".$oVO->$rua."%";
                       $stmt->bindParam(':rua',$rua,PDO::PARAM_STR);
                }
                
               $stmt->execute();
               $result = $stmt->fetch();
               $recordCount = $result[0];

            }

            catch (PDOException $e){
                $DB->DBerror($e, $sql);
            }

            return $recordCount;
	}
        
        /**
         * Função responsável por buscar os estados que estão associados à alguma
         * empresa e jogar seu resultado em um comboBox para fins de busca.
         * @return array $estados
         */
        public function getStateByEnterprise(){
            $DB = new DB();
            $dbh = $DB->conec();	
            try{
                $sql = "SELECT DISTINCT (est.nome) FROM ESTADO est, EMPRESA emp, cidade cid, ENDERECO end, CIDADE_has_ENDERECO cied WHERE emp.idEmpresa = end.idEmpresa AND end.idEndereco = cied.idEndereco AND cied.idCidade = cid.idCidade AND est.idEstado = cid.idEstado ORDER BY est.nome";
                $stmt = $dbh->prepare($sql);
                $stmt->execute();
                $result = $stmt->fetchAll(PDO::FETCH_COLUMN);
            } catch (PDOException $e) {$DB->DBerror($e, $sql);}
            return $result;
        }
        
        /**
         * Função responsável por buscar as informações de endereço de uma empresa.
         * @param type $idEmpresa
         * @return $oVOempresa
         */
        public function getByIdEmpresa($idEmpresa){
            $DB = new DB();
            $dbh = $DB->conec();
            $oVO = new VOendereco();
            try {
                $sql = "SELECT * FROM ENDERECO WHERE idEmpresa =:idEmpresa";
                $stmt = $dbh->prepare($sql);
                $stmt->bindParam(":idEmpresa",$idEmpresa,PDO::PARAM_INT);
                $stmt->execute();
                $oVO = $stmt->fetch(PDO::FETCH_OBJ);
            } catch (PDOException $e) {
                $DB->DBerror($e, $sql);
            }
            return $oVO;
        }
}